This invention relates to a random number generating circuit, and more particularly, to a random number generating circuit compactly constructible with a digital logic circuit, capable of generating random numbers with high randomness, and suitable for use in cryptographic algorithm.
Digital random numbers are used, for example, in simulation of a phenomenon accompanied by a probability process, and in a generation process of an identification number, a password and an encryption key for a cryptographic algorithm for a security purpose. As digital random numbers, conventional techniques have used pseudo digital numbers made by computation by CPU. Such pseudo random numbers are typically made by logic circuits called feedback shift registers.
On the other hand, a method of making random numbers by using noise generated in resistors or diodes has also been brought into practical use. In this method, unevenness or periodicity is removed from random numbers, and approximately “true random numbers” can be obtained. This type of random number generating circuit flows a constant current in an element of a noise source to generate noise, then supplies the noise to a high-pass filter circuit to extract AC components, then amplifies them in an analog circuit, and thereafter converts them to digital values by AD conversion. In this process, using a certain value as a threshold value, the method determines AC component in excess of the threshold value as “1” and AC components not reaching the threshold value as “0”. Further, since the random number sequence obtained exhibits unevenness, it is used after correction by a digital circuit in most cases.
As already known, pseudo random numbers made by CPU become equal random numbers if the same number is initially given (seed), and since they undesirably have periodicity based on the number of registers, they are not adequate as random numbers. Especially for use in security, they have the possibility that the “encryption key” is broken.
On the other hand, the circuit of the type configured to amplify noise needs a large-scaled analog amplifier circuit and it is difficult for integration and miniaturization, because heat noise and shot noise of resistors and diodes are usually analog signals and their outputs are small. Especially, it is difficult to incorporate it in a compact device, such as IC card, for a cryptographic security function.
Therefore, a compact integrating circuit capable of generating high-quality random numbers without any periodicity is being demanded.
For miniaturization purpose, the circuit is preferably made in form of a digital circuit such as TTL or MOS, for example. Digital circuits, however, can only make random numbers by an algorismic process because they basically produce equal outputs in response to a certain input. Therefore, similarly to feedback shift registers, they can only make pseudo random numbers.
To overcome this inconsistency, it is necessary to make a digital circuit that produces uncertain outputs.